<?php
namespace app\admin\controller;

use app\common\controller\AdminBase;
use app\common\model\Link as LinkModel;

/**
 * 友链管理
 * @package app\admin\controller
 */
class Link extends AdminBase
{
    private $model=null;
    public function _initialize()
    {
        if (is_null($this->model)) {
            $this->model = new LinkModel;
        }
    }
    # 链接列表
    public function index()
    {
        $data=$this->model->getAllData();
        $this->assign('data', $data);
        return $this->fetch();
    }
    # 添加链接
    public function add()
    {
        if (!request()->isAjax()) {
            $this->redirect('admin/link/index');
        }
        $data=input('post.');
        $result=$this->model->addData($data);
        if (is_array($result)) {
            return json(['errno'=>1,'msg'=>$result['msg']]);
        }
        if (!$result) {
            return json(['errno'=>1,'msg'=>'链接添加时发生错误']);
        }
        return json(['errno'=>0,'msg'=>'链接添加完成']);
    }
    # 编辑链接
    public function edit()
    {
        if (!request()->isPost()) {
            $id=input('get.id');
            if (!$data=$this->model->getById($id)) {
                return json(['errno'=>1,'msg'=>'获取链接数据时发生错误']);
            }
            return json(['errno'=>0,'msg'=>'获取链接数据成功','data'=>$data]);
        }
        $data=input('post.');
        $result=$this->model->editData($data['id'], $data);
        if (is_array($result)) {
            return json(['errno'=>1,'msg'=>$result['msg']]);
        }
        if (!$result) {
            return json(['errno'=>1,'msg'=>'链接编辑时发生错误']);
        }
        return json(['errno'=>0,'msg'=>'链接编辑完成']);
    }
    # 删除链接
    public function del()
    {
        if (!request()->isAjax()) {
            $this->redirect('admin/link/index');
        } else {
            $data=input('post.');
            $result=$this->model->delData($data['id']);
            if (!$result) {
                return json(['errno'=>1,'msg'=>'链接删除时发生错误']);
            }
            return json(['errno'=>0,'msg'=>'链接删除成功']);
        }
    }
    # 状态修改
    public function status()
    {
        if (!request()->isAjax()) {
            $this->redirect('admin/link/index');
        }
        $data=input('post.');
        if (1==$data['status']) {
            $result=$this->model->editStatus(['id'=>$data['id']], ['status'=>0]);
        } else {
            $result=$this->model->editStatus(['id'=>$data['id']], ['status'=>1]);
        }
        if (is_array($result)) {
            return json(['errno'=>1,'msg'=>$result['msg']]);
        }
        if (!$result) {
            return json(['errno'=>1,'msg'=>'友链状态编辑时发生错误']);
        }
        return json(['errno'=>0,'msg'=>'友链状态编辑完成']);
    }
}
